주제 1
데이터 분리의 목적
훈련 데이터는 모델의 기울기 m을 학습하는 데 사용합니다. 테스트 데이터는 학습에 쓰지 않고, 새로운 데이터에 대한 예측 성능을 마지막에 평가합니다. 예제에서는 데이터를 섞은 뒤 80%를 훈련, 20%를 테스트에 사용합니다.
학습에 사용한 데이터만으로 평가하면 모델이 외운 내용을 잘 맞히는 것도 좋은 성능으로 보일 수 있습니다. 분리의 목적은 일반화 성능을 확인하는 것입니다.
평균으로 결측치를 채우거나 표준화할 때도 훈련 데이터에서만 기준을 계산하고, 그 기준을 테스트 데이터에 적용합니다. 모델과 학습률을 여러 번 비교해 선택할 때는 검증 데이터를 따로 쓰고, 테스트 데이터는 최종 평가에 남겨 둡니다.
주제 2
성능지표(MSE) 도출 과정
예측 모델은 y = mx입니다. i번째 데이터의 입력값을 xᵢ, 실제값을 yᵢ라고 하면 예측값은 mxᵢ입니다.
- 한 점에서 차이의 제곱 구하기
i번째 점의 예측값과 실제값의 차이를 제곱합니다. 제곱하면 양수와 음수의 오차가 서로 상쇄되지 않습니다.
(예측값 − 실제값)² = (mxᵢ − yᵢ)²
- 1번째부터 n번째까지 모두 더하기
각 데이터 점에서 구한 차이의 제곱을 더합니다. 시그마(Σ)는 지정한 범위의 값을 모두 더하라는 뜻입니다.
- 데이터 개수로 나누어 MSE 구하기
제곱의 합을 데이터 점의 개수 n으로 나누면 평균 제곱 오차, MSE가 됩니다.
MSE는 0 이상이며, 작을수록 예측값이 실제값에 가깝습니다. m을 바꾸면 예측값과 MSE도 달라지므로 MSE(m)으로 표현합니다.
주제 3
경사하강법의 원리
MSE(m)은 m에 따라 변하는 함수입니다. MSE′(m)은 현재 m에서 MSE 곡선의 접선 기울기, 즉 미분값을 뜻합니다.
MSE′(m) = (2/n) Σᵢ₌₁ⁿ xᵢ(mxᵢ − yᵢ)
m_new = m − α × MSE′(m)
MSE′(m) > 0이면 접선이 오른쪽 위로 향하므로 m을 줄입니다. MSE′(m) < 0이면 접선이 오른쪽 아래로 향하므로 m을 늘립니다. 이렇게 미분값의 반대 방향으로 조금씩 이동하면 MSE가 줄어듭니다.
y = mx 모델의 MSE(m)은 m에 대한 이차함수입니다. x가 모두 0이 아니라면 아래로 볼록한 곡선이 되고, MSE′(m) = 0인 지점에서 최솟값을 가집니다. 적절한 학습률로 위 과정을 반복해 그 지점의 m을 찾습니다.
주제 4
학습률의 역할과 크기에 따른 변화
학습률 α는 한 번의 학습에서 이동하는 크기를 결정합니다. 같은 미분값이라도 α가 커지면 m의 변화량 |α × 미분값|이 커집니다.
너무 작은 α는 이동이 느리고 많은 반복이 필요합니다. 적절한 α는 안정적으로 최솟값에 접근합니다. 너무 큰 α는 최솟값을 지나치며 진동하거나 오차가 점점 커져 발산할 수 있습니다. α=0이면 전혀 이동하지 않습니다.
A = mean(x²)
안정적 수렴 조건: 0 < α < 1/A
이 수렴 조건은 여기의 한 변수 이차함수에 해당합니다. 데이터의 크기가 커지면 A도 커져 더 작은 학습률이 필요합니다. 시뮬레이터에서 학습률을 바꾸며 미분값과 다음 MSE를 비교해 보세요.